package com.cy.controller;

import com.cy.pojo.GoodsSingle;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;

@RestController
@RequestMapping("/ShowCarController")
public class ShowCarController {



    private ArrayList buylist = new ArrayList<GoodsSingle>(); // 用来存储购买的商品

    public ArrayList getBuylist() {
        return buylist;
    }



    @RequestMapping("/buy")
    public void  buy(String names, float prices, HttpSession session){
        String id=session.getId();
        buylist=(ArrayList)session.getAttribute(id+"shopCar");

        if (buylist.size() == 0) { //如果buylist中没有商品
            GoodsSingle temp=new GoodsSingle();
            temp.setName(names);
            temp.setPrice(prices);
            temp.setNum(1);
            temp.setTotal(prices);
            buylist.add(temp); // 存储商品
        }
        else { // 如果buylist中存在商品
            int i = 0;
            for (; i < buylist.size(); i++) { // 遍历buylist集合对象
                GoodsSingle temp = (GoodsSingle) buylist.get(i); // 获取当前元素
                if (temp.getName().equals(names)) { //判断从buylist集合中获取的当前商品的名称是否与要添加的商品的名称相同
                    temp.setNum(temp.getNum() + 1); //若相同，商品购买数量加1
                    temp.setTotal(temp.getNum()*prices);
                    break; // 结束for循环
                }
            }
            if (i >= buylist.size()) { // 说明buylist中不存在要添加的商品
                GoodsSingle temp=new GoodsSingle();
                temp.setName(names);
                temp.setPrice(prices);
                temp.setNum(1);
                temp.setTotal(prices);
                buylist.add(temp); // 存储商品
            }
        }

    }

    @RequestMapping("/remove")
    public void remove(String names){
        GoodsSingle temp;
        for (int i = 0; i < buylist.size(); i++) { //遍历buylist集合
             temp = (GoodsSingle) buylist.get(i); // 获取当前位置的商品
            // 如果商品的名称为name参数指定的名称
            if (temp.getName().equals(names)) {
                if (temp.getNum() > 1) { // 如果商品的购买数量大于1
                    temp.setNum(temp.getNum() - 1); // 则将购买数量减1
                    temp.setTotal(temp.getNum()*temp.getPrice());
                    System.out.println("减一");
                    break; // 结束for循环
                } else if (temp.getNum() == 1) { // 如果商品的购买数量为1
                    buylist.remove(i); // 从buylist集合对象中移除该商品
                    System.out.println("移除");
                    break; // 结束for循环
                }
            }
        }
    }

    @RequestMapping("/clear")
    public void clear(){
        buylist.clear();
        System.out.println("清空");
    }

    @RequestMapping("/settlement")
    public void settlement(){

    }
}
